extends Polygon2D

var wp=false
var d=32#节点距
var ty=0#水面平时y
var k=0#弹性
var u=0#阻力占比
var v=0#竖直速度
var w=[]#所有water_spring节点列表
var tr=0#波传递质点速度与边上点关系
var x=0
var y=0
var wi=0
var h=0

func winit(ds,ks,us,ts):
	d=ds
	k=ks
	u=us
	tr=ts
	wp=get_polygon()
	x=wp[0].x
	y=wp[0].y
	wi=wp[1].x-wp[0].x
	h=wp[2].y-wp[0].y
	for t in range(int(wi/d)):
		var ws=preload("res://water_spring.tscn").instance()
		add_child(ws)
		w.append(ws)
		ws.sinit(x+t*d,y,k,u,w,t,tr)
	var ws=preload("res://water_spring.tscn").instance()
	add_child(ws)
	w.append(ws)
	ws.sinit(x+wi-d,y,k,u,w,w.size()-1,tr)
	ws=preload("res://water_spring.tscn").instance()
	add_child(ws)
	w.append(ws)
	ws.sinit(x+wi,y,k,u,w,w.size()-1,tr)

func wupdate(delta):
	wp=[]
	for t in w:
		t.supdate(delta)
		wp.append(t.position)
	wp.append(Vector2(x+wi,y+h))
	wp.append(Vector2(x,y+h))
	set_polygon(PoolVector2Array(wp))

func f(fx,fw,ff):#位置 宽度 大小
	for t in range(int(fw/d)):
		if((int((fx-x)/d)+t)>-1&&(int((fx-x)/d)+t)<w.size()):
			w[int((fx-x)/d)+t].v=ff

func _physics_process(delta):
	wupdate(delta)
